package com.ruoyi.client.domain.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.time.LocalDateTime;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 活动记录表
 * </p>
 *
 * @author fz
 * @since 2025-03-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("blog_oper")
public class BlogOper implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键 ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 活动标题
     */
    private String title;
    /**
     * 图标
     */
    private String icon;
    /**
     * 跳转路径
     */
    private String url;

    /**
     * 活动描述
     */
    private String description;

    /**
     * 活动对应数（1发布，2关注，3点赞，4收藏，5修改，6评论）
     */
    private Integer businessNum;

    /**
     * 活动类型（如：博客更新、评论、点赞、分享等），用于分类活动。
     */
    private String businessType;

    /**
     * 关联用户 ID,表示触发该活动的用户
     */
    private Long userId;

    /**
     * 目标 ID,表示活动关联的目标（如博客 ID、评论 ID 等）
     */
    private Long targetId;

    /**
     * 目标类型,（如：blog、comment 等），用于标识 target_id 的类型
     */
    private String targetType;
    /**
     * 目标对象的类名
     */
    private String targetClass;

    /**
     * 目标对象的json数据
     */
    private String targetJson;
    /**
     * 副标题
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    private LocalDateTime subTitle;
    /**
     * 操作时对象状态
     */
    private Integer status;


    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updateTime;


}
